/**
 * @param {number[]} arr
 * @return {number[]}
 */
var prevPermOpt1 = function (arr) {
  const n = arr.length
  for(let i=n-2;i>=0;i--){
    if(arr[i]>arr[i+1]){
      let j=n-1
      while(arr[j]>=arr[i]||arr[j]==arr[j-1]){
        j--
      }
    [arr[i],arr[j]]=[arr[j],arr[i]]
    }
  }
}

prevPermOpt1([1,9,4,6,7])
